package com.vanysoft.framework.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import java.util.Locale;

/**
 * 类名称：BaseVanySoftConfig
 * 类描述：配置类
 * 创建人：SharpClaw_x
 * 创建时间：2017年5月10日 下午5:02:48
 * 修改人：SharpClaw_x
 * 修改时间：2017年5月10日 下午5:02:48
 * 版本信息：@version 1.0
 * Copyright (c) 2017SharpClaw-版权所有
 * 修改备注：
 */
@Configuration
@EnableWebMvc
public class BaseVanySoftConfig extends WebMvcConfigurerAdapter {
    // 无限制资源访问位置
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //-对外暴露的静态资源路径
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");
        registry.addResourceHandler("/upload/**").addResourceLocations("classpath:/upload/");
        registry.addResourceHandler("/ueditor/**").addResourceLocations("classpath:/ueditor/");
    }

    /**
     * Function Name               addInterceptors
     *
     * @param registry
     * @description 注入拦截器
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年5月25日 下午4:30:26           SharpClaw_x                    Initial
     * *********************************************************************
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }

    /**
     * ******国际化*****
     */
    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        slr.setDefaultLocale(Locale.US);
        return slr;
    }

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        return new LocaleChangeInterceptor();
    }
}
